(define (fac n)
    (if (= n 1)
        1
        (* n (fac (- n 1)))
    )
)
(define (fac2 n)
    (define (fact-iter product counter max-count)
        (if (> counter max-count)
            product
            (fact-iter 
                (* counter product)
                (+ counter 1)
                max-count
            )
        )
    )
    (fact-iter 1 1 n)
)
; litter scheme 递归与函数
(pretty-print (fac 6))
(pretty-print (fac2 6))